WebtoB + JEUS + web application
1. WebtoB 설치1.1 설치파일, 라이센스(license.dat)준비1.2 라이센스 적용 : webtoB4.1\license\license.dat2. WebToB 실행2.1 실행파일생성(wsconfig) --> 환경파일 컴파일 : wscfl -i [환경파일] 2.2 실행 : wsboot --> wsboot -w (handler가 process들을 확인하며 booting->안정적인 booting)2.3 종료 : wsdown --> wsdown -i (질의를 던지지 않고 바로 down) 2.4 웹서비스 테스트 : http://127.0.0.1:8080/ 3. WebToB 환경설정 파일 : sample.m3.1 가상홍스트 추가하기*VHOSTvhost1 DOCROOT="D:/TmaxSoft/edu01", HOSTNAME="test.tmax.co.kr",NODENAME="Impression32", PORT="80" 3.2 윈도우의 hosts 파일에 등록하기D:\WINDOWS\system32\drivers\etc\hosts 파일에 등록 3.3 환경파일 컴파일 : wscfl -i sample.m3.4 기동중인 webtob 다운 후 재부팅 : wsdown -i / wsboot3.5 테스트NODE절 포트 수정 확인 : http://127.0.0.1:80/가상호스트 추가 확인 : http://test.tmax.co.kr:80/ 4. WebtoB 관리 툴 : wdadmin4.1 wi : 웹투비의 기본 정보 출력4.2 ci : 접속한 클라이언트의 정보 출력ci -s : 접속한 클라이언트의 수 출력cfg : 웹투비의 환경설정 내용 확인cfg -n : 노드 환경설정 내용 확인si : 웹투비의 서비스 목록 출력st -v : 웹투비의 서비스 상태 출력st -p : 웹투비의 프로세스 상태 출력repeat(r) : 웹투비의 명령을 반복적으로 수행하여 모니터링 효과를 냄ex) r -i 2 -k 10 si 5. JEUS 설치5.1 JEUS 설치파일, 라이센스5.2 라이센스 적용 : D:\TmaxSoft\JEUS5.0\license\license파일적용 6. JEUS 실행6.1 Two-step 부팅: 서버실행 - jeus: 엔진실행 - JEUS의 웹관리자웹관리자주소 : http://127.0.0.1:9744/webadmin포트번호지정 : 기본Base port(9736) + 8포트번호변경 : bin/jeus.properties.cmdJEUS/config/vhost.xml 의 포트번호를 변경합니다.웹관리자 계정 : administrator패스워드 : jeusadmin 노드선택 --> 제어 --> 부트
6.2 One-step 부팅: 부트명령(jboot.bat) --> jeus -xml -Uadministrator -Pjeusadmin: 종료명령(jdown.bat) --> jeusadmin [노드명] -Uadministrator -Pjeusadmin jeusexit
6.3 JEUS 웹서비스 테스트: http://127.0.0.1:8088/ 7. JEUS의 환경설정 파일7.1 JEUS\config\JEUSMain.xml : JEUS서버 전체의 환경 설정7.2 EJBMain.xml : EJB엔진에 대한 환경 설정7.3 JMSMain.xml : JMS엔진에 대한 환경 설정7.4 WEBMain.xml : Servlet엔진에 대한 환경 설정web.xml : 웹의 컨텍스트를 만들때 컨텍스트의 환경설정7.5 WSMain.xml : WS엔진에 대한 환경 설정
1. JEUS에서 web application 서비스하기1.1 물리적 Context 생성C:\tmaxsoft\edu01|----WEB-INFweb.xml(NODE의 servlet engine에서 가져옴) 1.2 JEUS에 Context 등록웹관리자 로그인 --> J2EE 어플리케이션 모듈배치 --> 절대경로--> ~~~~ --> 배치(2단계배치[J2EE어플리케이션모듈], 영구배치[J2EE어플리케이션모듈배치]) 1.3 서비스 실행:테스트를 위한 jsp파일 생성(test.jsp):http://127.0.0.1:8088/edu01/test.jsp8088 : http_listener portedu01: 배치한 모듈명test.jsp :
실습) edu02 컨텍스트 생성, 실행 웹 어플리케이션 파일 test02.jsp --> http://127.0.0.1:8088/edu02/test02.jsp 2. JEUS container 관리2.1 생성 : 서블릿 엔진 생성(리스너ID, 리스너PORT 지정) 2.2 서블릿 엔진 테스트 --> http://127.0.0.1:8089/edu01/test.jsp 3. WebtoB와 JEUS연동하기3.1 WebtoB 설정 : sample.m 파일에 추가3.2 JEUS 설정 : 해당 컨테이너의 webtob 리스너 연결 설정 3.3 연동 설정 테스트 --> http://127.0.0.1:80/edu01/test.jsp 4. 실 습WebtoB의 가상호스트 vhost1 과 JEUS의 container1에 webtob2 리스너 추가, 연동.http://test.tmax.co.kr:80/edu01/test.jsp 4.1 WebtoB 설정 추가 4.2 JEUS container1에 webtob2 리스너 추가 5. JEUS에서 서블릿 실습
5.1 서블릿 코드 작성 : HelloWorldServlet.java
5.2 컴파일 : jeus.jar 파일 경로 지정후javac -d . HelloWorldServlet.java
5.3 JEUS에서 실행 --> http://127.0.0.1:8088/edu01/servlets/HelloWorldServletweb.xml 문서의 WorkServlet 은 /servlets/* 로 매핑되어 있음 5.4 WebtoB에서 실행 --> http://127.0.0.1:80/edu01/servlets/tmax/HelloWorldServlet
1. WAR 파일 생성하기1.1 패키징하기 : JeusBuilder 사용- 파일명 : wartest.war서블릿명 : Hello서블릿 클래스 : tmax.HelloWorldServletURI 패턴지어 : /helloworldContextpath(url에서 context호출) : /hello 1.2 JEUS에 패키징한 모듈 배치하기- JEUS 웹관리자 --> J2EE 어플리케이션 모듈 배치 --> 모듈배치 --> ~~~ --> 배치(2단계 배치, 영구배치) 1.3 WAR 파일 실행http://127.0.0.1:8088/hello/test.jsphttp://127.0.0.1:8088/hellohttp://127.0.0.1:8088/hello/helloworld/ http://1273.0.0.1:8088/Hello (/Context를 정의, /Context는 모듈에 하나존재) 1.4 실 습파일명 : wartest2.war서블릿명 : Hello2서블릿 클래스 : tmax.HelloWorldServletURI 패턴지정 : /helloworld2/Contextpath : /hello2 http://127.0.0.1:8088/hello2/Hello2 , http://127.0.0.1:8088/hello2/helloworld2/ 2. DB 연동2.1 DataBase 정보 확인- 서버 IP : 192.169.10.5- 접속계정 : oracle/dkzkepal(아카데미)- sql접속계정 : sqlplus edu01~edu32/edu01~edu32- SID 명 : ORA10G - 테이블 생성 : TmaxTestcreate table TmaxTest ( name varchar(20), address varchar(20) ); - 데이터 입력 :Insert into TmaxTest values('장동건','서울'); Insert into TmaxTest values('강호동','부산'); - commit;
2.2 드라이버 준비 및 JEUS 서버 등록- JDBC 드라이버 : ojdbc14.zip- 오라클 JDBC 드라이버 다운로드 사이트 : http://www.oracle.com/global/kr - JEUS 등록 : D:\TmaxSoft\JEUS5.0\lib\datasource\ojdbc14.jar 2.3 DataSource 설정- JEUS 웹관리자 -> JEUS 매니저 리소스 -> JDBC -> 새 JDBC 데이터 소스 생성 2.4 실 습로그인 실행 테스트 : MVC login.jsp (presentation 로직 : View) loginCheck.jsp (business 로직 : Control) TmaxLogin (data : Model) 아이디 : tmax 비밀번호 : 1234 *************************************************************************************************************** *** webToB ****************************************************************************************************************VHOSTvhost11 DOCROOT="c:/xxx/webapps/test/",NODENAME = "web1",HOSTNAME = "test.com",PORT = "80"vhost12 DOCROOT="c:/xxx/webapps/test/",NODENAME = "web1",HOSTNAME = "www.test.com",PORT = "80"
* SVRGROUPvhost11g NODENAME = "web1", SVRTYPE = JSV,Vhostname="vhost11"vhost12g NODENAME = "web1", SVRTYPE = JSV,Vhostname="vhost12"
* SERVERtest SVGNAME = vhost11g, MinProc = 20, MaxProc = 20, HttpInBufSize=0wwwtest SVGNAME = vhost12g, MinProc = 20, MaxProc = 20, HttpInBufSize=0
****************************************************************************************************************** JEUS ***************************************************************************************************************container.xml 에 두개의 contextgroup을 생성하여 각각의 RegistrationID 를 test, wwwtest 로 하여 연동 ***************************************************************************************************************
웹모듈(application) 추가하기 1) %JEUS_HOME%\config\노드명\JEUSMain.xml 수정 - 아래내용 추가 폴더위치애플리케이션명\COMPONENT컨테이너명MyGroupISOLATEDJAR 2) JEUS 재시작 3) 해당폴더\WEB-INF/web.xml 생성 확인 4) 해당폴더\WEB-INF/jeus-web-dd.xml 생성 확인 /truefalsefalse-1falsefalsefalsefalse ============================================================================================================
JDBC*Class Loading : Class.forName();->class를 사용하는 방법
*Connection 생성방법 2가지 -DBCP를 사용안함 (Driver class를 로드하여 DB에 접근) public Connection connectDbms() {Connection con = null;Properties env = new Properties(); //사용자 환경변수 객체
try {env.load(new FileInputStream("d:\\java\\day6\\db.properties"));Class.forName(env.getProperty("driver")); // JDBC 드라이버용 클래스 로드} catch (ClassNotFoundException e) {e.printStackTrace();return null;}catch (FileNotFoundException e) {e.printStackTrace();return null;} catch (IOException e) {e.printStackTrace();return null;}
// 1. DB Connection 얻기String url = env.getProperty("url"); //"jdbc:oracle:thin:@127.0.0.1:1521:ORCL"; // JDBC 전용 URL 형식으로 기술// thin = type4(순수java)String user = env.getProperty("user"); //"scott";String password = env.getProperty("password"); //"tiger";
try {con = java.sql.DriverManager.getConnection(url, user, password);System.out.println("****** Connect to DBMS! *******");} catch (SQLException e) {e.printStackTrace();return null;}return con;} -DBCP 사용 (server.xml, web.xml에 Container에 대한 코드 추가)try{Context initCtx = new InitialContext();Context envCtx = (Context) initCtx.lookup("java:comp/env");ds = (DataSource)envCtx.lookup("jdbc/EmployeeDB");}catch(NamingException ne){ne.printStackTrace();} 1. Servlet의 init()메소드에서 DataSource를 생성하여 인자로 넘겨 connection 가져오기-Servlet 마다 DataSource 생성 2. ServletContextListener에서 한번만 생성하여 인자로 넘김-DataSource 한번만 생성해도 됨(Servlet마다 DataSource를 생성하지 않음)3. ServletContextListener에서 생성한 DataSource를 Single tone pattern으로 사용-class에서도 single.getAttribute()로 DataSource를 얻어 올 수 있음
*statement
상속관계Statement PreparedStatementString sql = "select age from test1 where ?=?";PreparedStatement pstmt = con.prepareStatementStatement(sql);pstmt.setString(1, "id");pstmt.setString(2,"syh1011");ResultSet rs = pstmt.executeQuery(); ->CallableStatementString sql = "select anem from salary";PreparedStatement pstmt = conpreparedStatement(sql);CallableStatement sctmt = con.prepareCall("{call adjust(?,?)}");ResultSet rs = pstmt.executeQuery();while(rs.next()) {cstmt.setString(1, rs.getString("name"));cstmt.setFloat(2, (float)0.05);cstmt.executeUpdate();} executeQeury(String sql) : SQL문이 select일 경우executeUpdate(String sql): SQL문이 insert, update, delete문 등일 경우execute(String sql) : SQL문을 알지 못할 경우 ->장점, 단점 *ResultSet, getXXX()로 Column값 얻기, Type별로 다른 method사용getXXX(int columnindex) : columnIndex의 값을 XXX타입으로 반환getXXX(String columnName): columnName의 값을 XXX타입으로 반환 *Transaction 처리Transaction의 4가지 특성(ACID)*원자성(Atomicity)*일관성(Consistency)*고립성(Isolation)*지속성(Durability) con.setAutoCommit(false); ->true : transaction을 시작하지 않겠다. ->false: transaction을 시작하겠다. setAutoCommit(false)와 commit(), rollback()사이의 operation들에 대한 transaction 처리-> con.commit(); -> con.rollback(); *********************************************************************************************************** ########## DOMAIN 절###### 독립적인 WebtoB 시스템의 전반적인 환경 설정을 할 수 있다.*DOMAIN # 도메인 네임은 string 형식으로 31자까지 사용 가능.# 다른 절들의 string 항목도 이와 동일하다.webtob1
########## NODE 절###### WebtoB를 이루는 각 Node들에 대한 구체적인 환경 설정을 할 수 있다.# 필수 항목으로 WebtobDir, ShmKey, DocRoot 항목을 설정해야 있다.*NODE # 실제 등록된 호스트의 이름을 말하며, UNIX의 경우 "uname -n" 명령으로 각 Host의 이름을 확인할 수 있다.# Node명은 반드시 UNIX의 경우 "/etc/hosts"(Windows의 경우 C:\WINNT\system32\drivers\etc) 파일에 등록되어 있어야 한다.# 하나의 Domain은 하나 이상의 Node로 이루어지므로, NODE절에는 최소한 하나 이상의 Node 이름이 정의되어야 한다.WebServer # WebtoB가 설치되어 있는 Home Directory 의 절대 경로명이다.# 환경변수로 정의되는 WEBTOBDIR 과 동일한 값으로 설정하면 된다.WebtobDir = "/data2/wbqam/webtob", # Shared Memory Segment를 가리키는 값이다.# 32768 ~ 262143 범위 내에서 다른 업무에 사용되는 키값과 충돌이 나지 않게 Shared Memory의 Key값을 설정 하면 된다.ShmKey = 78100, # WebtoB가 웹을 통해 서비스하는 모든 문서를 포함하는 Root Directory 의 절대 경로를 설정한다.DocRoot="/data2/wbqam/webtob/docs", # HTTP Request Handler) Process의 개수를 설정한다.# Hth하나당 약 800개 이상의 Client를 수용할 수 있다.# Default Number 설정은 1 이며, 최대 20개 까지 지정할 수 있다.Hth = 2, # WebtoB가 Listen하는 Port를 지정한다.# 일반적으로 Web Server는 80 Port 이용하므로 설정하지 않을경우 default 값으로 80으로 설정된다.# 최대 100개의 포트를 동시에 지정하여 사용할 수도 있다.# Listen 항목과 동시에 운영할 수 없으며, Port보다 Listen항목에서 지정되는 Port가 우선순위가 높아# 동시에 지정하면 Port항목은 무시 된다.Port = "8100,8200", ##### User, Group 설정# WebtoB에서 시스템의 보안을 위하여 WebtoB의 실제 실행 Process에 대한 권한 설정을 할 수 있다.# 설정한 권한으로 Process가 실행되기 위해서는 반드시 root 권한으로 WebtoB를 실행해야 한다. # 설정된 Group의 권한으로 WebtoB가 요구를 수행하게 된다.# Client 요구를 수행하기 위하여 Group 설정을 권장한다.# Group 설정은 Unix계열의 OS에서만 지원한다.Group = "nobody", # 설정된 User의 권한으로 WebtoB가 요구를 수행하게 된다.# Client 요구를 수행하기 위하여 User 설정을 권장한다.# User 설정은 Unix계열의 OS에서만 지원한다.User = "nobody", # 관리자의 정보를 나타낸다.# 관리자에게 연락할 수 있는 e-mail address를 설정할 수 있다.Admin = "wbqam@tmax.co.kr", # Http Response Header의 host name field에 기록될 값을 설정할 수 있다.HostName = "www.tmax.co.kr", # 해당 서버의 HostName를 적어 준다.# 특별히 $(NODENAME)이라고 적어주면, 자동으로 해당 서버의 HostName가 적용된다.# 한글 노드명을 사용하거나 긴 노드명을 사용할 경우 NodeName 을 설정한다.NodeName = "$(NODENAME)" # MultiNode 설정시 각 Node들 간의 연결 Port 번호를 지정한다.# MultiNode 설정시 반드시 지정해 주어야 한다.# default 설정은 7777 번이다.# NodePort = 7777, # WebtoB와 Servlet 수행 Server간의 연결 Port 번호를 지정한다.# default 설정은 9999 번이다.JSVPort = 9100, # Multi Node 구성시 Node 관리 차원에서 Node간 통신을 위한 Port번호를 지정한다.# 위의 NodePort와는 달리 이것은 관리 Process 중 하나인 wsracd Daemon에서 사용하는 Port번호이다.# default 설정은 3333 번이다.RacPort = 4455, # WebtoB는 Server 내부 Caching의 한 Entry의 크기로서 기본단위는 Kbyte이다.# default size는 128 Kbyte 이다.CacheSize = 128, # Cache의 총 Hashing Key 엔트리 개수를 설정한다.# default 개수는 128개 이다.CacheEntry = 256, # HTML file에 대한 cache refresh time을 설정한다.# default 설정은 0 second 이다.CacheRefreshHtml = 60, # DirIndex에 대한 cache refresh time을 설정한다.# default 설정은 0 second 이다.CacheRefreshDir = 60, # 사용자가 웹사이트에 접속한 후, 다른 웹페이지를 읽어 들이기 위해 곧 다시 접속을 시도 할 경우# 불필요한 시간 지연이 없도록 하려면 이 항목을 지정함으로써 접속을 단절하지 않고 유지할 수 있다.KeepAlive = Y, # 커넥션 설정후 일정 개수의 요구는 커넥션을 유지한 상태로 서비스를 하고 커넥션을 끊도록 하는데,# 커넥션을 끊기 전에 들어주는 요구의 개수를 지정한다.# default 설정은 9999 이다.KeepAliveMax = 10, # 하나의 Client가 불필요하게 커넥션을 오래 잡고 있는 경우를 막기 위해# 다음 Request 까지 일정 시간 이상이 되면 커넥션을 끊을 수 있도록 설정할 수 있다.# default 설정은 60 second 이다.KeepAliveTimeout = 30, # 사용자의 최대 접속시간을 지정한다.# default 설정은 300 second 이다.Timeout = 100, # WebtoB를 통해 사용자별로 동시에 서비스 하려는 경우 설정한다.# 값이 설정이 되면 각 사용자의 directory를 찾아서 서비스 한다.UserDir = "public_html", # WebtoB를 통해 응용 프로그램을 바로 호출하는 경우 해당 프로그램이 위치할 디렉토리를 설정한다.# 경로명은 절대 경로와 WEBTOBDIR을 기준으로 한 상대 경로를 사용할 수 있다.AppDir = "/data2/wbqam/webtob/ap", ##### Log Directory# WebtoB에서는 기본적으로 Log 정보를 남기기 위하여 설정한다.# 환경파일에 따로 설정하지 않을경우 WEBTOBDIR/log 디렉토리에 기록이 된다.# 로그가 기록될 디렉토리가 없을경우 booting시 에러가 나므로, 실제 존재하는 디렉토리여야 한다.# 경로명은 절대 경로와 WEBTOBDIR을 기준으로 한 상대 경로를 사용할 수 있다. # 시스템 메시지가 기록될 Directory의 경로명을 설정한다.# Default Path는 (WEBTOBDIR)/log/syslog 이다.SysLogDir = "/data2/wbqam/webtob/log/syslog", # 사용자 메시지가 기록될 Directory의 경로명을 설정한다.UsrLogDir = "/data2/wbqam/webtob/log/usrlog", # Service Directory로 요청이 올대 기본적으로 서비스되는 파일 이름을 설정한다.# 기본 설정은 index.html 이다.IndexName = "indexname.html", # Service Directory에 요구를 보낼 때의 동작을 지정한다.# Options에 지정할수 있는 서비스와 기능들을 아래와 같다.# Service: HTML, CGI, SSI, PHP, JSV# Function: INDEX, INCLUDE# 모든 기능을 이용하려면 "+ALL", 모든 기능을 이용하지 않으려면 "-ALL"을 설정할 수 있다.Options = "+Index", # Client가 보내는 Request Method에 대한 정의를 할 수 있다.# HEAD, GET, POST, OPTIONS 등을 설정을 할 수 있으며, 사용하고 싶지 않을경우 "-Option" 으로 설정하면 된다.# 참고로 HTTP Method CONNECT, DELETE, GET, HEAD, OPTIONS, POST, PUT, TRACE 등이 있다.Method = "GET,POST,HEAD,-OPTIONS", # 여러개의 IP Address를 가진 Server에서 자신이 원하는 IP로만 서비스 하기를 원할때 지정한다.# 여러개의 아이피와 포트를 지정할 수도 있다.# Port항목과 Listen 항목을 동시에 지정하는 경우 Port에 지정한 Port는 무시된다.# Listen="192.168.1.43:8300", # DIRINDEX절에서 설정하는 디렉토리 인덱스의 이름을 적어준다.DirIndex = "diridx_def" # 접속 Client가 사용 언어를 지정하지 않았을 경우# Server쪽에서 지정된 언어 순서대로 Multiview request 등의 처리가 이루어지도록 한다.LanguagePrio = "kr", # LOGGING절에서 설정하는 Logging Name을 설정하며, 해당 설정에 해당하는 Log를 남기게 되는 것이다.Logging = "log1", # LOGGING절에서 설정하는 Logging Name을 설정하며, 해당 설정에 따라 Error Log를 남기게 된다.ErrorLog = "log2", # WebtoB에서 특정 정보를 읽어 들일 필요가 있는 경우 이용된다.# EnvFile = "WebtoB.env", # WebtoB에서 SSL을 이용할 때 Y 로 설정한다.# default 설정은 N 이다.# SslFlag = Y, # SslFlag = Y 상태일때 적용이 되며, SSL절에 설정한 Ssl Name를 지정한다.# SSLNAME = "ssl_def", # 서버 프로세스에 속한 노드의 최대 동시 접속자 수를 설정한다.MaxUser = 4000, # WebtoB 내부 프로세스의 접근권한을 설정한다.# Default 설정은 0700 이다.# IpcPerm = 0744, # 접속을 기다리는 큐(queue)의 길이를 제한하는 것으로,# 서버가 대량의 접속 시도를 한꺼번에 날려주는 TCP SYN해킹을 당하고 있다면 유용하게 사용 될수 있을 것이다.# default 설정은 511 이다.ListenBacklog = 100, # TCP 전송 Buffer의 크기를 설정하는 것으로, 이 항목을 이용하면 특정한 환경에서 동작 속도를 향상시킬 수 있다.# default 설정은 0이며, 0의 값은 OS default값을 사용함을 의미한다.SendBufferSize = 4096, # 클라이언트의 요청시 HTTP 프로토콜을 통해 서버가 제공할 수 있는 Request Body 크기를 바이트 단위로 정의하는 것으로,# 0의 값은 크기에 제한이 없음을 의미한다.# default 설정은 0 bytes 이다.LimitRequestBody = 20000, # 클라이언트의 요청시 허용되는 HTTP Request header field의 수를 설정한다.# 0의 값은 제한이 없음을 의미한다.# default 설정은 100 이다.LimitRequestFields = 20, # 클라이언트의 요청시 허용되는 각 HTTP Request header field의 크기를 설정한다.# 최대 허용되는 값은 8190이다.# default 설정은 8190 bytes 이다.LimitRequestFieldSize = 300, # 클라이언트의 요청시 허용되는 HTTP Request line의 최대 크기를 설정한다.# 최대 허용되는 값은 8190이다.# default 설정은 8190 이다.LimitRequestLine = 4000, # HTTP 응답 헤더의 Server에 관한 정보를 어떻게 다룰지 결정한다.# "Off", "Prod[uctOnly]", "Min[imal]", "OS", "Full", "Custom=xxx/x.x" 등을 설정할 수 있다.ServerTokens = "Minimal", # HTTP 요청으로부터 해당 Server와 Service를 결정할때, URI절과 EXT절의 우선순위를 결정한다.# Vhost절에 이 항목이 설정되지 않은 경우는 Node절에 설정된 값이나 기본값을 Vhost가 따르게 된다.# default 설정은 "uri,ext" 이다.ServiceOrder = "ext,uri", # HTTP header의 Content-Type에 character set 설정이 없는 Request에 응답에 추가될 character set의 이름을 설정한다.# "On"(ISO-8859-1), "Off"(설정안함), "_charset_"(사용자 기술) 중 하나를 설정할 수 있다.# 여러 절에서 적용되는 우선 순위는 Node < Vhost < SvrGroup < Directory 순이다.DefaultCharset = "Off", # MIME-Type을 결정할 수 없는 문서의 Default Content-Type을 설정한다.# Default Content-Type은 SvrGroup, Vhost, Node절의 순으로 결정된다DefaultMimetype = "text/html", # Web Server에서 내부 프로세스간 IPC통신을 하기 위해서 기본적으로 특정 포트(6666)를 사용하는데,# IPCBasePort항목을 통해 해당 포트를 변경할 수 있다.# 현재 Windows에서만 지원된다. (UNIX의 경우 PIPE통신)# default 설정은 6666 이다.# IpcBasePort = 6667, # EXPIRES절의 설정한 Expires이름을 설정한다.Expires = "exp11, exp12, expdef1", # TCPGW 절에 설정한 tcpgw 이름을 설정한다.TcpGW = "tcpgw_full", # ERRORDOCUMENT절에 설정한 ErrorDocument 이름을 설정한다.ErrorDocument = "404", # WebtoB 내부 프로세스 통신을 위한 socket생성 디렉토리를 설정한다.# default 설정은 $WEBTOBDIR/path 이다.PathDir="/data2/wbqam/webtob/path", ##### 멀티노드 구성시 아래와 같이 추가적으로 노드를 정의한다.#tmaxi1# WEBTOBDIR="/data/wbqam/webtob",# SHMKEY = 78100,# DOCROOT="/data/wbqam/webtob/docs",# APPDIR="/data/wbqam/webtob/ap",# PORT = "8100",# HTH = 2,# LOGGING = "log5",# ERRORLOG = "log6",# HostName = "www.tmax.co.kr",# RACPORT = 4455,# NodePort = 7787
**********************************************************************************************************
1. WebToB의 가상호스트 설정1.1 환경설정파일(sample.m)을 추가, 컴파일 *VHOSTvhost1 HostName="test.tmax.co.kr",DOCROOT="C:/TmaxSoft/edu02", # 웹서비스 파일 위치 지정NODENAME="respect04",PORT="80", # URL 이름이 같은 경우 포스번호를 다르게 설정해야 함. 현재는 호스트네이임이 다르므로 포스번호가 같아도 상관없다IndexName="test.html", # Wellcome page 설정KeepAlive=Y, # KeepAlive와 KeepAliveTimeout은 같이 사용해야 함(set 구성)KeepAliveTimeout=30
1.2 윈도우 hosts 파일에 가상호스트 설정 (실제 서비스할 경우 DNS서버에 추가)(C:\WINDOWS\system32\drivers\etc\hosts)추가 => 127.0.0.1 test.tmax.co.kr 1.3 기동 후 테스트1) sample.m 컴파일(wscfl -i sample.m)2) ws 재기동3) C:/TmaxSoft/edu02에 test.html 추가4) 웹에서 test.html 확인 url=http://test.tmax.co.kr # 알아둡시다- sample.m에서 정의된 *NODE는 localhost(127.0.0.1)이다.- sample.m에서 정의되지 않은 기본설정 확인은 wsadmin에서 cfg명령어로 확인한다cfg -n : Node 환경설정cfg -vh : vhost 환경설정 (sample.m에 *VHOST가 정의 되었을 때만 사용)- 기본설정을 변경할 경우 cfg에서 보여진 명령어를 sample.m에 재정의한다- DOCROOT의 디렉토리 구분은 ''이 아니라 '/'로 구분한다 2. WebToB의 가상호스트와 JEUS연동설정2.1 가상호스트를 인식 시키기 위한 WebToB설정sample.m에 정의*SVRGROUPv_jsvg NODENAME = "respect04", SVRTYPE = JSV, VHOSTNAME="vhost1" #가상호스트에서 인식 *SERVER #컨테이너 그룹명과 연동정의 및 몇개의 프로세스 사용할 것인가 정의v_MyGroup SVGNAME = v_jsvg, MinProc = 10, MaxProc = 20 # 가상호스트 MyGroup 2.2 JEUS 설정2.2.1 웹관리자 이용 시1) 새 웹 리스너 생성경로 : 서블릿엔진 - MyGroup - 웹리스너2) 설정- Listener Id : alias 명- PORT : 기존 webtob 포트번호와 다르게 설정- 스레드풀 : max, min은 sample.m *SERVER에서 정의한 내용과 동일하게 처리- Webtob Address : 해당 Listener와 연결되는 WebtoB서버의 IP어드레스- Registration Id : sample.m *SERVER에서 정의한 그룹ID- Webtob Home : C:\TmaxSoft\WebtoB4.1 => webtob가 설치되어 있는 home 디렉토리2.2.2 서블릿 WEBMain.xml 정의v_webtob199011020httpv_MyGroupC:\TmaxSoft\WebtoB4.1
3. 컨테이너 추가 (웹관리자) 후 WebToB 연동3.1 새 엔진 컨테이너 생성- Name : container3- ID, BasePort- 서블릿 엔진 : engine2- 리스너 ID/서버 채널 이름 : http2 (#http 리스너를 반드시 추가하세요.)- 리스너/서버 채널 포트 : 8087 3.2 새 어플리케이션 모듈 배치 - 모듈 선택- 2단계 배치- 영구배치는 J2EE 어플리케이션 모듈 배치에서 영구배치를 클릭 시에디터아이콘을 선택하여 영구 모듈 디플로이 컨테이너대상을 설정 3.3 추가한 컨테인너 서블릿 WEBMain.xml 정의MyGrouphttp2808781921020v_webtob199011020httpv_MyGroupC:\TmaxSoft\WebtoB4.1
4. 서블릿 작성/실행하기4.1 HelloWorldServlet.java 작성==============================================================================package tmax; import! java.io.*;import! javax.servlet.*;import! javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet{protected void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,java.io.IOException {resp.setContentType("text/html");PrintWriter out = resp.getWriter();out.println("");out.println("");out.println("Hellow World Sample");out.println("");out.println("");out.println("Hello World!!!");out.println("");out.println("");out.close();}}================================================================================ 4.2 컴파일C:\TmaxSoft\edu01\WEB-INF\classes>javac -d . H*.java 4.3 실행http://127.0.0.1:8088/edu01/servlets/tmax/HelloWorldServlet
4.4
. web.xml에 서블릿명 추가(HelloWorld)HelloWorldtmax.HelloWorldServlet-1HelloWorld/helloworld/4.5 실행http://127.0.0.1:8088/edu01/HelloWorld
5. WebToB에서 서블릿을 실행하기 위한 url 설정5.1 sample.m 파일 수정 *URIuri2 Uri = "/edu01/", Svrtype = JSV #url에 edu01이 들어간 문자는 서블릿을 실행하게 한다 5.2 실행